package models.beans;

import java.util.List;
import models.dao.ProductoDao;
import models.entity.Producto;
// heredamos de la clase producto por lo que contamos con el id, nombre, precio y cantidad ;-)

public class ProductoBean extends Producto {
// crea la instancia/ejemplar del objeto DAO (Objeto de acceso a Datos)

    private ProductoDao productoDao = new ProductoDao();
// utilizando el objeto DAO (Objeto de acceso a Datos) obtiene el listado completo de los productos

    public List<Producto> findAll() {
        return productoDao.findAll();
    }
// utilizando el objeto DAO (Objeto de acceso a Datos) obtiene un producto particular por su id
// El id lo hereda de la clase Producto, este atributo es mapeado con al parámetro id de la petición GET
// Es automáticamente mapeado cuando un atributo de la clase jaba beans coincide con el nombre de un
// parámetro de la petición, ya sea de tipo POST (Formulario) o GET (pasado por la URL como es éste caso)
// Luego le pasa el id con el valor del parámetro id de la petición al método findById(id) del Objeto Dao
// En caso que el id sea cero creamos un nuevo producto, de lo contrario lo modificamos

    public Producto findById() {
        Producto producto = null;
        if (id > 0) {
            producto = productoDao.findById(id);
        } else {
            producto = new Producto();
        }
        return producto;
    }
// Ya que heredamos de la clase Producto, “somos un producto” y le pasamos nuestra instancia al DAO
// para que guarde el producto, TODO el estado interno o valores que contienen los atributos del beans
// Provienen del los parámetros del formulario que están mapeados a nuestros atributo de la clase actual

    public void save() {
        productoDao.save(this);
    }
// Eliminamos el producto, conteniendo en this el valor del id que viene de la petición pasado por la URL

    public void delete() {
        productoDao.delete(this);
    }
}
